
package edu.uoc.tds.pec4.swingx;

import edu.uoc.tds.pec4.common.RemotoInterface;
import edu.uoc.tds.pec4.i18n.GestorIdiomas;
import edu.uoc.tds.pec4.model.Medallero;
import edu.uoc.tds.pec4.model.Usuario;
import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import java.rmi.RemoteException;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JToolBar;
import javax.swing.SwingConstants;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author TdsSoft
 */
public class PantallaEstadisticaMedallero extends javax.swing.JDialog {
    private static final long serialVersionUID = 1L;
    private Usuario usuario;
    private RemotoInterface remoto;
    private JToolBar jToolBarraHerramientas;
    private JPanel panelTitulo;
    private JLabel labelTitulo;
    private JButton jButtonSalir;
    private JTable tableMedallero;
    private DefaultTableModel medalleroDatos;
    private JScrollPane scroll;
    
    
    public PantallaEstadisticaMedallero (PantallaMenuPrincipal parent, boolean modal) throws RemoteException {
        super(parent, modal);
        this.remoto = parent.getRemoto();
        this.usuario = parent.getUsuario();
        initComponents();
    }
    
    private void initComponents(){
        setLayout(null);
        Container contenedor = getContentPane();
        contenedor.setLayout(null);
        contenedor.add(getJToolBarraHerramientas());
        contenedor.add(getPanelTitulo());
        panelTitulo.add(getJLabelTitulo());
        add(getJscrollmedallero());
        pack();
        setSize(635,600);
        setTitle(GestorIdiomas.getMessage("PantallaEstadisticaMedallero.Titulo"));
        cargaDatos();
    }
    
    private JPanel getPanelTitulo(){
        panelTitulo = new JPanel();
        panelTitulo.setBounds(30, 50, 550, 50);
        panelTitulo.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));;
        panelTitulo.setLayout(null);
        return panelTitulo;
    }

    private JToolBar getJToolBarraHerramientas(){
        jToolBarraHerramientas = new JToolBar();
        jToolBarraHerramientas.add(getJButtonSalir());
        jToolBarraHerramientas.setRollover(true);
        jToolBarraHerramientas.setName(GestorIdiomas.getMessage("PantallaEstadisticaMedallero.JToolBarraHerramientas")); 
        jToolBarraHerramientas.setRollover(true);
        jToolBarraHerramientas.setBounds(10, 10, 50, 30);
        return jToolBarraHerramientas;
    }
        
    private JButton getJButtonSalir(){
        jButtonSalir = new JButton();
        jButtonSalir.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icons/Exit.png")));
        jButtonSalir.setFocusable(false);
        jButtonSalir.setBounds(0, 0, 30, 30);
        jButtonSalir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonSalirActionPerformed(evt);
            }
        });
        return jButtonSalir;
    }
        
    private JLabel getJLabelTitulo(){
        labelTitulo = new JLabel(GestorIdiomas.getMessage("PantallaEstadisticaMedallero.getJLabelTitulo"), JLabel.CENTER);
        labelTitulo.setBounds(0, 15, 550, 16);
        labelTitulo.setFont( new Font("Arial",Font.BOLD,18 ));
        labelTitulo.setForeground(Color.BLUE);
        labelTitulo.setHorizontalAlignment(SwingConstants.CENTER);
        return labelTitulo;
    }
        
    private void jButtonSalirActionPerformed(java.awt.event.ActionEvent evt) {                              
        this.setVisible(false);
    }
    
    private JScrollPane getJscrollmedallero(){
         scroll = new JScrollPane();
         scroll.setViewportView(getTableMedallero());
         scroll.setBounds(55, 120, 500, 400);
         //30, 50, 550, 50
         return scroll;
    }
    
    private JTable getTableMedallero(){
         medalleroDatos = new DefaultTableModel();
         tableMedallero = new JTable(medalleroDatos);
         medalleroDatos.addColumn (GestorIdiomas.getMessage("PantallaEstadisticaMedallero.medalleroDatos_columna1"));
         medalleroDatos.addColumn (GestorIdiomas.getMessage("PantallaEstadisticaMedallero.medalleroDatos_columna2"));
         medalleroDatos.addColumn (GestorIdiomas.getMessage("PantallaEstadisticaMedallero.medalleroDatos_columna3"));
         medalleroDatos.addColumn (GestorIdiomas.getMessage("PantallaEstadisticaMedallero.medalleroDatos_columna4"));
         medalleroDatos.addColumn (GestorIdiomas.getMessage("PantallaEstadisticaMedallero.medalleroDatos_columna5"));
         tableMedallero.setEnabled(false); 
         tableMedallero.getColumnModel().getColumn(0).setPreferredWidth(200);
         return tableMedallero;
    }
    
    private void cargaDatos(){
        List<Medallero> listaMedallero = new ArrayList<Medallero>();
        try {
            listaMedallero = remoto.obtenerMedallero();
            
            Object[] objetoMedalleroDatos = new Object[5];
            
            for (int i = 0; i < listaMedallero.size(); i++) {
                objetoMedalleroDatos[0] = listaMedallero.get(i).getNombreUniversidad();
                objetoMedalleroDatos[1] = listaMedallero.get(i).getMedallaOro();
                objetoMedalleroDatos[2] = listaMedallero.get(i).getMedallaPlata();
                objetoMedalleroDatos[3] = listaMedallero.get(i).getMedallaBronce();
                objetoMedalleroDatos[4] = listaMedallero.get(i).getTotalMedallas();
                 medalleroDatos.addRow(objetoMedalleroDatos);
            }
        } catch (RemoteException ex) {
            JOptionPane.showMessageDialog(null, GestorIdiomas.getMessage("PantallaEstadisticaMedallero.ErrorObjetoRemoto"), GestorIdiomas.getMessage("ShowMessageDialog.Error"), 0);
        }
    }
}
